介面(interface)具有資料成員 與 抽象函數;那麼 他與「抽象類別」有何不同之處?
interface 介面名稱
{
final 資料型態 成員名稱=常數;
public abstract 傳回值資料型態 函數名稱(引數...);
//抽象函數並無定義處理方式
}
因為介面只有抽象函數,abstract 的關鍵字可以省略;
而資料成員部分:因為此值不會被更改,final 也是可以省略的。
抽象函數的修飾子也只能使用公有 public (或不宣告),
為了都能取用到,所以不能宣告 私有private或保護 protected 。
再次強調一次重點:
知道介面只含有抽象函數,不禁也讓我們聯想到:
抽象函數只定義其名稱,而沒有處理方式,因此介面跟抽象類別一樣無法直接建立物件。
Q:那麼我們該如何透過定義好的介面來造一個類別,並透過之來建立物件?
A:使用 介面 a 來打造 類別 b ,我們稱為介面的實作(implementation)、以類別b實作介面a
介面的實作(implementation)格式也很簡單:
class 類別名稱 implements 介面名稱
{
...
}
下一篇將透過完整範例做更加詳盡的解說,加深對介面實作 的使用。
如果您喜歡我的文章,可以至 4xDev 的 Java 學習系列閱讀更多 Java 文章。